﻿namespace HlElock.Api.Models
{
    /// <summary>
    /// 表示用于从 PMS 系统中删除房间的请求参数。
    /// </summary>
    public class DeleteRoomRequest
    {
        /// <summary>
        /// 获取或设置房间所在的楼栋标识。
        /// 对应 API 中的 'build' 字段。
        /// </summary>
        public string Build { get; set; }

        /// <summary>
        /// 获取或设置房间所在的楼层（例如 "A"）。
        /// 对应 API 中的 'floor' 字段。
        /// </summary>
        public string Floor { get; set; }

        /// <summary>
        /// 获取或设置要删除的房间的唯一标识符。
        /// 对应 API 中的 'roomid' 字段。
        /// </summary>
        public string RoomId { get; set; }

        /// <summary>
        /// 获取或设置与房间关联的项目代码。
        /// 对应 API 中的 'prjcode' 字段。
        /// </summary>
        public string PrjCode { get; set; }

        /// <summary>
        /// 获取或设置执行删除操作的操作员 ID。
        /// 根据 curl 命令，此字段可以为空。
        /// 对应 API 中的 'operid' 字段。
        /// </summary>
        public string OperId { get; set; }

        /// <summary>
        /// 获取或设置操作的日期。
        /// 此字段在删除上下文中的具体用途尚不明确，
        /// 但根据 curl 命令，它是调用接口所必需的。
        /// 对应 API 中的 'tjdate' 字段。
        /// </summary>
        public string TjDate { get; set; }

        /// <summary>
        /// 初始化 <see cref="DeleteRoomRequest"/> 类的新实例。
        /// </summary>
        public DeleteRoomRequest() { }

        /// <summary>
        /// 使用指定的值初始化 <see cref="DeleteRoomRequest"/> 类的新实例。
        /// </summary>
        /// <param name="build">楼栋标识。</param>
        /// <param name="floor">楼层位置。</param>
        /// <param name="roomId">房间的唯一标识符。</param>
        /// <param name="prjCode">项目代码。</param>
        /// <param name="operId">操作员 ID（可以为空）。</param>
        /// <param name="tjDate">操作日期。</param>
        public DeleteRoomRequest(string build, string floor, string roomId, string prjCode, string operId, string tjDate)
        {
            Build = build;
            Floor = floor;
            RoomId = roomId;
            PrjCode = prjCode;
            OperId = operId;
            TjDate = tjDate;
        }
    }
}
